/*
题目描述
小A和小B是一对好朋友，他们的爱好是研究数字。学过除法之后，他们就发明了一个新游戏：两人各说一个数字分别为a和b，如果a能包含b的所有质数因子，那么A就获胜。但是当数字太大的时候，两个朋友的脑算速度就有点跟不上了。
现在，请你写个程序，来判断胜负吧：输入两个正整数，表示a和b（2≤a, b≤10 18）。如果a包含了b的所有质数因子，则输出“Yes”，否则输出“No”（输出时没有引号）。

输入
输入两个正整数a和b,中间用一个空格隔开。

输出
如果a包含了b的所有质数因子，则输出“Yes”，否则输出“No”（输出时没有引号）。

样例输入
输入1：
120 75
输入2：
7 8

样例输出
输出1：
Yes
输出2：
No

数据范围限制
2≤a, b≤10 18
*/
/*
 *假如a包含了b的所有质数因子，那么，a和b的最大公约数c, 
 b的其他因数d = b / c,
 如果c % d == 0,   (因为c是最大公约数，如果d不是由最大公约数里面的因子组成的，那么b中就有a中没有的因子)
 那么就满足
 */
#include <iostream>
using namespace std;

#define ll long long

ll gcd(ll a, ll b){
	return b == 0 ? a : gcd(b, a % b);
}

int main(){
	ll a, b;
	cin >> a >> b;
	ll c = gcd(a, b);
	b = b / c;
	if(c % b == 0)
		cout << "Yes" << endl;
	else
		cout << "No" << endl;
	return 0;
}


